<?php

/**
 * productos actions.
 *
 * @package    mediatica
 * @subpackage productos
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class productosActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
    
  
  public function executeListProducto(sfWebRequest $request)
    {
       $servicioProducto = new productoClass();
       $descripcion      = $request->getParameter('txtDescripcion', "");
       $estado           = $request->getParameter('cboEstado', "");
       $criteria         = $servicioProducto->listadoProducto($descripcion,$estado);
     
       $pager = new sfPropelPager('Producto', 10);/*de cuanto en cuanto*/
       $pager->setPage($request->getParameter('page', 1));/*en pagina comienza*/
       $pager->setCriteria($criteria);
       $pager->init();

       $maxpag=$pager->getMaxPerPage();
       $pagina=$request->getParameter('page',1);
       $this->descripcion = $descripcion;
       $this->estado      = $estado;
       $this->max=$maxpag;
       $this->pagina=$pagina;
       $this->pager = $pager;

    }   
    
  public function executeProductos(sfWebRequest $request)
  {
        $servicioAgencia   = new agenciaClass();
        $servicioCliente   = new clienteClass();        
        $servicioProveedor = new proveedorClass();
        $criteriaAgencia   = $servicioAgencia->listadoAgencias("","","",1);
        $criteriaCliente   = $servicioCliente->listadoClientes("","","",1);
        $criteriaProveedor = $servicioProveedor->listadoProveedores("", "", "", 1);
        $this->listaAgencia = AgenciaPeer::doSelect($criteriaAgencia);
        $this->listaCliente = ClientePeer::doSelect($criteriaCliente);        
        $this->listaProveedor = ProveedorPeer::doSelect($criteriaProveedor);        
  }
  
  public function executeGrabarProducto(sfWebRequest $request)
  {
       $servicioProducto = new productoClass();
       $itemComisionAuto = ($request->getParameter('ckComisionAuto')=="on") ?  1 : 0;
       $itemFee        = ($request->getParameter('checkfee')=="on")       ?  1 : 0;
       $ckComision   = ($request->getParameter('checkcomision')=="on")  ?  1 : 0;
       $ckComisionAuto = ($request->getParameter('checkautogestionable')=="on") ? 1 : 0;
       $ckTradicional  = ($request->getParameter('ckTradicional')=="on")  ?  1 : 0;
     
       
       $valorFee  = $request->getParameter('comisionfee');
       $comisiontradicional     = $request->getParameter('comisiontradicional');
       $comisionautogestionable = $request->getParameter('comisionautogestionable');

       
       $arrayParametros = array(
            'codigo'         =>  $request->getParameter('codigoprod'),
            'agenciaId'      =>  $request->getParameter('agenciaprod'),
            'descripcion'    =>  $request->getParameter('descripcionprod'),
            'clienteId'      =>  $request->getParameter('clienteprod'),
            'itemComisionAuto' =>  $ckComisionAuto,
            'itemPorcentaje' =>  $request->getParameter('porcentajeagencia'),
            'seFactura'      =>  $request->getParameter('facturar'),
            'itemFee'        =>  $itemFee,
            'itemComisionAuto'   =>  $itemComisionAuto,
            'ckComision'   =>  $ckComision,
            'ckComisionAuto'   =>  $ckComisionAuto,
            'ckComisionTradicional'   =>  $ckTradicional,
            'txtComisionTrad'   => number_format($comisiontradicional ,2),
            'txtComisionAuto'   => number_format($comisionautogestionable ,2), 
            'valorFee'       => number_format($valorFee,2),
            'monedaId'       => $request->getParameter('rdMoneda',0),
            'tref'           => $request->getParameter('tipocambio'),
            'costoClic'      => $request->getParameter('costoClic'),
            'horas'          => $request->getParameter('horas'),
            'costoVista'     => $request->getParameter('costoVista'),
            'costoMilImpresiones'   => $request->getParameter('costoMilImpresiones'),
            'patrocinio'     => $request->getParameter('patrocinio'),
            'costoPlead'     => $request->getParameter('costoPlead'),
            'costoPa'     => $request->getParameter('costoPa')
       );       
     
      
      $respuesta =$servicioProducto->grabarProducto($arrayParametros);
      if($respuesta['success'])
      {
          $this->getUser()->setFlash('sf_mensajeProducto', true);
      }
      $this->redirect('@producto');
      
  }
  
  
  public function executeViewProducto(sfWebRequest $request)
  {

            $servicioProducto = new productoClass();
            $idProducto      = $request->getParameter('idProducto');
            $respuesta     = $servicioProducto->obtenerProduto($idProducto);
            if($respuesta['success'])
            {
                $servicioAgencia = new agenciaClass();
                $servicioCliente = new clienteClass();       
                $servicioProveedor = new proveedorClass();     
                $criteriaAgencia = $servicioAgencia->listadoAgencias("","","",1);
                $criteriaCliente = $servicioCliente->listadoClientes("","","",1);
                $criteriaProveedor = $servicioProveedor->listadoProveedores("", "", "", 1);
                $this->listaAgencia = AgenciaPeer::doSelect($criteriaAgencia);
                $this->listaCliente = ClientePeer::doSelect($criteriaCliente); 
                $this->productoBean = $respuesta['objecto'];
                $this->listaProveedor = ProveedorPeer::doSelect($criteriaProveedor);   
                return sfView::SUCCESS;
            }
            return sfView::ERROR;
    }
    
   public function executeEditarProducto(sfWebRequest $request)
  {
       $servicioProducto = new productoClass();
       $itemComisionAuto = ($request->getParameter('ckComisionAuto')=="on") ?  1 : 0;
       $itemFee        = ($request->getParameter('checkfee')=="on")       ?  1 : 0;
       $ckComision   = ($request->getParameter('checkcomision')=="on")  ?  1 : 0;
       $ckComisionAuto = ($request->getParameter('checkautogestionable')=="on") ? 1 : 0;
       $ckTradicional  = ($request->getParameter('ckTradicional')=="on")  ?  1 : 0;
     
       
       $valorFee  = $request->getParameter('comisionfee');
       $comisiontradicional     = $request->getParameter('comisiontradicional');
       $comisionautogestionable = $request->getParameter('comisionautogestionable');

       
       $arrayParametros = array(
            'id'             =>  $request->getParameter('idProducto'),
            'codigo'         =>  $request->getParameter('codigoprod'),
            'agenciaId'      =>  $request->getParameter('agenciaprod'),
            'descripcion'    =>  $request->getParameter('descripcionprod'),
            'clienteId'      =>  $request->getParameter('clienteprod'),
            'itemComisionAuto' =>  $ckComisionAuto,
            'itemPorcentaje' =>  $request->getParameter('porcentajeagencia'),
            'seFactura'      =>  $request->getParameter('facturar'),
            'itemFee'        =>  $itemFee,
            'itemComisionAuto'   =>  $itemComisionAuto,
            'ckComision'   =>  $ckComision,
            'ckComisionAuto'   =>  $ckComisionAuto,
            'ckComisionTradicional'   =>  $ckTradicional,
            'txtComisionTrad'   => number_format($comisiontradicional ,2),
            'txtComisionAuto'   => number_format($comisionautogestionable ,2), 
            'valorFee'       => number_format($valorFee,2),
            'monedaId'       => $request->getParameter('rdMoneda',0),
            'tref'           => $request->getParameter('tipocambio'),
            'costoClic'      => $request->getParameter('costoClic'),
            'horas'          => $request->getParameter('horas'),
            'costoVista'     => $request->getParameter('costoVista'),
            'costoMilImpresiones'   => $request->getParameter('costoMilImpresiones'),
            'patrocinio'     => $request->getParameter('patrocinio'),
            'estado'     => $request->getParameter('estadoprod'),
            'costoPlead'     => $request->getParameter('costoPlead'),
            'costoPa'     => $request->getParameter('costoPa')
       );       
      $respuesta =$servicioProducto->editarProducto($arrayParametros);
      if($respuesta['success'])
      {
          $this->getUser()->setFlash('sf_mensajeProducto', true);
      }
      $this->redirect('@viewProducto?idProducto='.$request->getParameter('idProducto'));
      
  }
  
  
   public function executeEliminarArchivo(sfWebRequest $request)
   {
       $idDetalle = $request->getParameter('idDetalle');
       $detalleBean = ArchivosProductosPeer::retrieveByPK($idDetalle);
       if(is_object($detalleBean))
       {
           $detalleBean->delete();
       }
   }
  
  
  
  
  
  
  
  
  
  
  
  
    public function executeDetalleProducto(sfWebRequest $request)
  {


      $nombrebanco=$request->getParameter("nombre");
      $cuentabanco=$request->getParameter("cuenta");
      $monedabanco=$request->getParameter("moneda");

    if($nombrebanco!="" && $cuentabanco!="")
    {

            $list = $this->getUser()->getAttribute("s_carrito",null);
            $id   = 1;

           $repetido = false;

           if($list!=null)
           {
              $result   = array_reverse($list);
              $id       = $result[0]['id']+1;


           }

           if($repetido==false)
           {
                  $newArray = array("id"=>$id,"nombre"=>$nombrebanco,"cuenta"=>$cuentabanco,"moneda"=>$monedabanco);
                  $list[]   = $newArray;
           }
           $this->getUser()->setAttribute("s_carrito",$list);

    }

           $this->listaSession = $this->getUser()->getAttribute("s_carrito",null);


  }

  public function executeEliminarProducto(sfWebRequest $request)
  {
       $idProducto       = $request->getParameter('idProducto');
       $productoBean     = ProductoPeer::retrieveByPK($idProducto);
       if(is_object($productoBean))
       {
           
           $criteria = new Criteria();
           $criteria->add(ContratoProductoPeer::ID_PRODUCTO,$idProducto);
           ContratoProductoPeer::doDelete($criteria);            
           $productoBean->delete();
       }
       $this->redirect('@listProductos');
  }


  public function executeAgregarContratoProducto(sfWebRequest $request)
  {
      $nombreSession    = $request->getParameter('sessionName',"s_agregarContrato");
      $servicioProducto = new productoClass();
      $arrayParametro   = array(
            "proveedorId"      => $request->getParameter("proveedorId"),
            "proveedorName"    => $request->getParameter("proveedorName"),
            "numerocontrato"   => $request->getParameter("numerocontrato"),
            "monto"            => $request->getParameter("monto"),
            "monedaBanco"      => $request->getParameter("monedaBanco"),  
            "tipocambio"       => $request->getParameter("tipocambio")
        );
      $servicioProducto->agregarContratoProducto($nombreSession,$arrayParametro);
      $this->nombreSession=$nombreSession;
  }


  public function executeEditarContratoDetalle(sfWebRequest $request)
  {
    $nombreSession=$request->getParameter('sessionName',"s_agregarContrato");
     $request->setRequestFormat('json');
     $servicioProductos= new productoClass();
    $arrayParametros= array(
        "idDetalle"        => $request->getParameter("id"),
        "proveedorId"      => $request->getParameter("proveedorId"),
        "proveedorName"    => $request->getParameter("proveedorName"),
        "numerocontrato"   => $request->getParameter("numerocontrato"),
        "monto"            => $request->getParameter("monto"),
        "monedaBanco"      => $request->getParameter("monedaBanco"),  
        "tipocambio"       => $request->getParameter("tipocambio")
    );

    $this->respuesta=$servicioProductos->editarContratodetalle($nombreSession,$arrayParametros);

  }

  public function executeEliminarContratoDetalle(sfWebRequest $request)
{

     $nombreSession=$request->getParameter('sessionName',"s_agregarContrato");
          $request->setRequestFormat('json');
     $servicioProductos= new productoClass();
     $idDetalle  = $request->getParameter("id");
     $this->respuesta=$servicioProductos->eliminarContratoDetalle($nombreSession,$idDetalle);

}

  public function executeEliminarContratoEditar(sfWebRequest $request)
{
      $nombreSession= 's_eliminarContratoEditar';
      $request->setRequestFormat('json');
      $servicioProducto= new productoClass();
      $idDetalle  = $request->getParameter("id");
      $this->respuesta=$servicioProducto->eliminarContratoEditar($nombreSession,$idDetalle );

  }
  
  
     public function executeCrearCodigo(sfWebRequest $request)
     {
          $request->setRequestFormat('json');
          $agenciaId = $request->getParameter('agenciaId');
          $servicioProducto = new productoClass();
          $codigo = $servicioProducto->generarCodigoProducto($agenciaId);
          $this->codigo = $codigo;
      }










}
